Ruby 日記 14日目: キーワード引数とdouble splat演算子
次のコードを実行するとどうなりますか
code:gold/ex14/main.rb
def foo(arg1:100, arg2:200)
puts arg1
puts arg2
end
option = {arg2: 900}
foo arg1: 200, **option
選択肢:
code:sh
200
900
code:sh
900
200
code:sh
100
200
エラーになる
解説:
option というhashオブジェクトを展開してキーワード引数としてfooメソッドに渡している、という認識(微妙にこの辺の理解がふわふわしているけど)
ので、foo(arg1: 200, arg2: 900) と同じ挙動になるはず。
code:sh
# ruby gold/ex14/main.rb
200
900